unit clsRegiaoVenda;

interface

uses Dm, dbtables, biblio;

type
  TRegiaoVenda = class(TObject)
  private
    Regiao_Codigo: string;
  public
    Regiao_Descricao: string;
    Regiao_Uf: string;
    function Gravar(p_Regiao_Codigo: string): Byte;
    function Recuperar(p_Regiao_Codigo: string): Byte;
    function Excluir(p_Regiao_Codigo: string): Byte;
    procedure Consultar(var p_q: TQuery; p_nome: string);
    function RetornaPrimeiroUltimo(PriUlt: Byte): string;
  end;

implementation

function TRegiaoVenda.Gravar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(DmInt);
  tq.databasename := dmint.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.params.clear;
  tq.sql.add('SELECT * FROM RegiaoVenda where Regiao_Codigo=:k_Regiao_Codigo');
  tq.parambyname('k_Regiao_Codigo').asstring := strzero(p_Regiao_Codigo, 3);
  tq.open;
  if tq.eof then begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('INSERT INTO RegiaoVenda VALUES(' +
      ':k_Regiao_Codigo,' +
      ':k_Regiao_Descricao,' +
      ':K_Regiao_Uf)');
  end else begin
    tq.sql.clear;
    tq.params.clear;
    tq.sql.add('UPDATE RegiaoVenda SET Regiao_Descricao=:k_Regiao_Descricao,Regiao_Uf=:k_Regiao_uf ' +
      'WHERE Regiao_Codigo=:k_Regiao_Codigo');
  end;
  tq.parambyname('k_Regiao_Codigo').asstring := strzero(p_Regiao_Codigo, 3);
  tq.parambyname('k_Regiao_Descricao').asstring := Regiao_Descricao;
  tq.parambyname('k_Regiao_uf').asstring := Regiao_uf;
  tq.close;
  tq.execsql;
  result := 1;
  tq.close;
  tq.Free;
end;

function TRegiaoVenda.Recuperar;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := DmInt.Db.DatabaseName;
  tq.active := False;
  tq.sql.clear;
  tq.sql.add('SELECT * FROM RegiaoVenda where Regiao_Codigo=:k_Regiao_Codigo');
  tq.Params[0].asstring := strzero(p_Regiao_Codigo, 3);
  tq.open;
  Regiao_Codigo := p_Regiao_Codigo;
  if tq.eof then begin
    Regiao_Descricao := '';
    Regiao_Uf := '';
    Result := 0;
  end else begin
    Regiao_Descricao := tq.fieldbyname('Regiao_Descricao').asstring;
    Regiao_Uf := tq.fieldbyname('Regiao_Uf').asstring;
    Result := 1;
  end;
  tq.Close;
  tq.Free;
end;

function TRegiaoVenda.Excluir;
var
  tq: TQuery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := dmint.db.databasename;
  tq.active := False;
  tq.close;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('DELETE FROM RegiaoVenda WHERE Regiao_Codigo=:k_Regiao_Codigo');
  tq.parambyname('k_Regiao_Codigo').asstring := strzero(p_Regiao_Codigo, 3);
  tq.execSQL;
  Result := 1;
  tq.close;
  tq.Free;
end;

procedure TRegiaoVenda.Consultar;
begin
  p_q.sql.Clear;
  p_q.Params.Clear;
  p_q.sql.add('Select * from RegiaoVenda where Regiao_Descricao>=:k_Regiao_Descricao order by Regiao_Descricao');
  p_q.parambyname('k_Regiao_Descricao').asstring := p_nome;
end;

function TRegiaoVenda.RetornaPrimeiroUltimo(PriUlt: Byte): string;
var
  tq: Tquery;
begin
  tq := Tquery.Create(dmint);
  tq.databasename := dmint.db.databasename;
  tq.active := False;
  tq.close;
  tq.sql.Clear;
  tq.params.clear;
  if PriUlt = 0 then begin
    tq.sql.add('Select Min(Regiao_Codigo) as Pos From RegiaoVenda');
  end else begin
    tq.sql.add('Select Max(Regiao_Codigo) as Pos From RegiaoVenda');
  end;
  tq.Open;
  if not tq.eof then begin
    if (tq.FieldByName('Pos').assTring <> '') then begin
      Result := StrZero(tq.FieldByName('Pos').assTring, 3);

    end else begin
      Result := '';

    end;

  end else begin
    Result := '';

  end;

  tq.close;
  tq.Free;

end;

end.
